home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1998 December: Technology Seed / ADC Seed CD - Dec'98.toast / FireWire / FireWire 1.3 SDK DR1 / Source / SBP2 / Interfaces / SampleSBP2.h next >
Encoding:
C/C++ Source or Header  |  1998-09-21  |  4.9 KB  |  252 lines  |  [TEXT/MPS ]

  1. /*
  2.     File:        SampleSBP2.h
  3.  
  4.     Contains:    Definitions for use with sample SBP-2 expert/family
  5.  
  6.     Version:    1.0
  7.  
  8.     Copyright:    © 1998 by Apple Computer, Inc., all rights reserved.
  9.  
  10.     File Ownership:
  11.  
  12.         DRI:                Eric Anderson
  13.  
  14.         Other Contact:        
  15.  
  16.         Technology:            FireWire
  17.  
  18.     Writers:
  19.  
  20.         (EA)    Eric Anderson (ewa)
  21.  
  22.     Change History (most recent first):
  23.  
  24.        <FW2>     9/20/98    EA        Filled in header comments.
  25.        <FW1>     9/20/98    EA        first checked in
  26. */
  27.  
  28.  
  29. #ifndef __SampleSBP2__
  30. #define __SampleSBP2__
  31.  
  32. #ifndef __TYPES__
  33. #include <Types.h>
  34. #endif
  35. #ifndef __APPLEEVENTS__
  36. #include <AppleEvents.h>
  37. #endif
  38. #ifndef __NAMEREGISTRY__
  39. #include <NameRegistry.h>
  40. #endif
  41.  
  42. #ifdef __cplusplus
  43. extern "C" {
  44. #endif
  45.  
  46. #if PRAGMA_IMPORT_SUPPORTED
  47. #pragma import on
  48. #endif
  49.  
  50. #if PRAGMA_ALIGN_SUPPORTED
  51. #pragma options align=mac68k
  52. #endif
  53.  
  54. ////////////////////////////////////////////////////////////////////////////////
  55. //
  56. // Sample SBP family typedefs.
  57. //
  58.  
  59. typedef struct OpaqueSBPClientID*        SBPClientID;
  60. typedef struct OpaqueSBPDriverID*        SBPDriverID;
  61.  
  62. enum
  63. {
  64.     kInvalidSBPClientID            = 0,
  65.     kInvalidSBPDriverID            = 0
  66. };
  67.  
  68. enum
  69. {
  70.     kNdrvTypeIsSampleSBP2        = 'SSBP'
  71. };
  72.  
  73. enum
  74. {
  75.     // Apple event class for Sample SBP family.
  76.     kAESampleSBP2EventClass    = 'SSBP',
  77.  
  78.     // Apple events sent by Sample SBP family.
  79.     kAESampleSBP2DeviceAdded    = 'ADDD',
  80.     kAESampleSBP2DeviceRemoved    = 'RMVD',
  81.  
  82.     // Parameters used by Sample SBP family Apple events.
  83.     kAESBPDriverIDKey            = 'DRID',
  84.     kAESBPDriverIDType            = typeLongInteger //zzz should we have our own???
  85. };
  86.  
  87. struct SBPInterfaceParamsStruct
  88. {
  89.     UInt32                        interfaceSelector;
  90. };
  91. typedef struct SBPInterfaceParamsStruct
  92.                                 SBPInterfaceParams,
  93.                                 *SBPInterfaceParamsPtr;
  94.  
  95. typedef OSErr
  96.     (SBPInterfaceProc) (
  97.         SBPInterfaceParamsPtr    pInterfaceParams);
  98. typedef SBPInterfaceProc        *SBPInterfaceProcPtr;
  99.  
  100. enum
  101. {
  102.     cscSBPCommand                = 2
  103. };
  104.  
  105. enum
  106. {
  107.     kSampleSBPLogin                = 1,
  108.     kSampleSBPLogout            = 2,
  109.     kSampleSBPQueryLogins        = 3,
  110.     kSampleSBPStatus            = 4,
  111.     kSampleSBPStatusInquiry        = 5,
  112.     kSampleSBPModeSense            = 6,
  113.     kSampleSBPReadBlock            = 7
  114. };
  115.  
  116. struct SBPGenericParamsStruct
  117. {
  118.     SBPInterfaceParams            sbpInterfaceParams;
  119.     Ptr                            responseBufferPtr;
  120.     UInt32                        responseBufferSize;
  121. };
  122. typedef struct SBPGenericParamsStruct
  123.                                 SBPGenericParams,
  124.                                 *SBPGenericParamsPtr;
  125.  
  126. struct SBPInitializeParamsStruct
  127. {
  128.     SBPInterfaceParams            sbpInterfaceParams;
  129.     RegEntryID                    *pDriverRegEntry;
  130. };
  131. typedef struct SBPInitializeParamsStruct
  132.                                 SBPInitializeParams,
  133.                                 *SBPInitializeParamsPtr;
  134.  
  135. struct SBPTerminateParamsStruct
  136. {
  137.     SBPInterfaceParams            sbpInterfaceParams;
  138.     RegEntryID                    *pDriverRegEntry;
  139. };
  140. typedef struct SBPTerminateParamsStruct
  141.                                 SBPTerminateParams,
  142.                                 *SBPTerminateParamsPtr;
  143.  
  144. struct SBPLoginParamsStruct
  145. {
  146.     SBPInterfaceParams            sbpInterfaceParams;
  147.     Ptr                            responseBufferPtr;
  148.     UInt32                        responseBufferSize;
  149.     OSStatus                    status;
  150. };
  151. typedef struct SBPLoginParamsStruct
  152.                                 SBPLoginParams,
  153.                                 *SBPLoginParamsPtr;
  154.  
  155. struct SBPLogoutParamsStruct
  156. {
  157.     SBPInterfaceParams            sbpInterfaceParams;
  158.     OSStatus                    status;
  159. };
  160. typedef struct SBPLogoutParamsStruct
  161.                                 SBPLogoutParams,
  162.                                 *SBPLogoutParamsPtr;
  163.  
  164. struct SBPStatusParamsStruct
  165. {
  166.     SBPInterfaceParams            sbpInterfaceParams;
  167.     Boolean                        login;
  168.     Boolean                        reconnecting;
  169.     Boolean                        reconnectFailed;
  170.     UInt32                        notificationCounter;
  171.     UInt32                        notificationEvent;
  172.     UInt32                        notificationLength;
  173.     Ptr                            notificationMessage;
  174. };
  175. typedef struct SBPStatusParamsStruct
  176.                                 SBPStatusParams,
  177.                                 *SBPStatusParamsPtr;
  178.  
  179. struct SBPStatusInquiryParamsStruct
  180. {
  181.     SBPInterfaceParams            sbpInterfaceParams;
  182.     OSStatus                    status;
  183. };
  184. typedef struct SBPStatusInquiryParamsStruct
  185.                                 SBPStatusInquiryParams,
  186.                                 *SBPStatusInquiryParamsPtr;
  187.  
  188. struct SBPModeSenseParamsStruct
  189. {
  190.     SBPInterfaceParams            sbpInterfaceParams;
  191.     OSStatus                    status;
  192. };
  193. typedef struct SBPModeSenseParamsStruct
  194.                                 SBPModeSenseParams,
  195.                                 *SBPModeSenseParamsPtr;
  196.  
  197. struct SBPReadBlockParamsStruct
  198. {
  199.     SBPInterfaceParams            sbpInterfaceParams;
  200.     OSStatus                    status;
  201. };
  202. typedef struct SBPReadBlockParamsStruct
  203.                                 SBPReadBlockParams,
  204.                                 *SBPReadBlockParamsPtr;
  205.  
  206.  
  207.  
  208. ////////////////////////////////////////////////////////////////////////////////
  209. //
  210. // Sample SBP family services.
  211. //
  212.  
  213. OSStatus    RegisterSBPClientApplication (
  214.     SBPClientID                    *pSBPClientID,
  215.     UInt32                        clientContextData);
  216.  
  217. OSStatus    UnregisterSBPClientApplication (
  218.     SBPClientID                    sbpClientID);
  219.  
  220. OSStatus    GetSBPDriverList (
  221.     SBPDriverID                    *pSBPDriverIDList,
  222.     UInt32                        sbpDriverIDListSize,
  223.     UInt32                        *pNumSBPDrivers);
  224.  
  225. OSStatus    CallSBPDriver (
  226.     SBPDriverID                    sbpDriverID,
  227.     SBPInterfaceParamsPtr        pInterfaceParams);
  228.  
  229. OSStatus    OpenSBPDriver (
  230.     SBPDriverID                    sbpDriverID);
  231.  
  232. OSStatus    CloseSBPDriver (
  233.     SBPDriverID                    sbpDriverID);
  234.  
  235. OSStatus    GetNextSBPClientEvent (
  236.     SBPClientID                    sbpClientID);
  237.  
  238.  
  239. #if PRAGMA_ALIGN_SUPPORTED
  240. #pragma options align=reset
  241. #endif
  242.  
  243. #if PRAGMA_IMPORT_SUPPORTED
  244. #pragma import off
  245. #endif
  246.  
  247. #ifdef __cplusplus
  248. }
  249. #endif
  250.  
  251. #endif /* __SampleSBP2__ */
  252.